package com.tsp_tux.demo.Controller;

import com.tsp_tux.demo.Entity.RespBean;
import com.tsp_tux.demo.Service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;

/**
 * 登录controller
 * @author 刘海生
 */

@RestController
@CrossOrigin
public class LoginController {

    @Autowired
    LoginService loginService;

    /**
     * 获取lt
     * @return 返回包含lt的响应信息
     */
    @GetMapping("/getLt")
    RespBean getLt() throws IOException {
        return loginService.getLt();
    }

    /**
     * 学生登录
     * @param uid 学生学号
     * @param rsa 前端计算的rsa密文
     * @param ul 学号长度
     * @param pl 密码长度
     */
    @PostMapping("/studentLogin")
    RespBean studentLogin(@RequestParam("user")String uid,
                          @RequestParam("rsa")String rsa,
                          @RequestParam("ul")int ul,
                          @RequestParam("pl")int pl) throws IOException {
        return loginService.studentLogin(uid, rsa, ul, pl);
    }

    /**
     * 教师登录
     * @param uid 教师工号，获取个人信息的时候需要用到
     * @param rsa 前端计算好的密文
     * @param ul 工号长度
     * @param pl 密码长度
     */
    @PostMapping("/teacherLogin")
    RespBean teacherLogin(@RequestParam("uid")String uid,
                          @RequestParam("rsa")String rsa,
                          @RequestParam("ul")int ul,
                          @RequestParam("pl")int pl) throws IOException {
       return loginService.teacherLogin(uid, rsa, ul, pl);
    }


    /**
     * 新的登录接口，教师学生前端不需要选择，登录进去就可以知道了
     * @param uid 学号/工号
     * @param rsa rsa密文
     * @param ul 学号/工号长度
     * @param lt 前端获取的lt
     * @param pl 密码长度
     * @return 消息实体
     * @throws IOException io异常
     */
    @PostMapping("/login")
    RespBean login(@RequestParam("uid")String uid,
                   @RequestParam("rsa")String rsa,
                   @RequestParam("lt")String lt,
                   @RequestParam("cookies")String cookies,
                   @RequestParam("ul")int ul,
                   @RequestParam("pl")int pl) throws IOException {
        return loginService.login(uid, rsa, lt, cookies, ul, pl);
    }

}
